package com.yangtao.prototype.system.user.service;

import com.yangtao.prototype.system.user.web.UserModel;

/**
 * 用户管理接口
 *
 * @author 杨涛
 */
public interface UserService {
	/**
	 * 新增用户
	 * 新增时用户名不能重复
	 *
	 * @param model
	 * @return
	 */
	UserModel addUser(UserModel model);

	/**
	 * 修改用户
	 * 修改时用户的中文名不能重复
	 *
	 * @param model
	 * @return
	 */
	UserModel updateUser(UserModel model);

	/**
	 * 根据用户ID号加载用户单条数据信息
	 *
	 * @param model
	 * @return
	 */
	UserModel loadUser(UserModel model);

	/**
	 * 加载用户可分配的资源资源包括：
	 * 可分配的角色信息,
	 * 可分配的组织机构,
	 * 可分配的数据权限信息
	 *
	 * @param model
	 * @return
	 */
	UserModel loadAvailableResource(UserModel model);

	/**
	 * 直接删除
	 * 同时要删除一个用户的所有相关信息
	 *
	 * @param model
	 * @return
	 */
	UserModel deleteUser(UserModel model);

	/**
	 * 根据用户对象相关数据信息查询符合数据条件分页数据集
	 * 要根据当前用户的Id查询当前用户所属机构下的所有用户
	 *
	 * @param model
	 * @return
	 */
	UserModel list(UserModel model);

}
